#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
系统演示脚本 - 展示自动化内容创作和分发系统的完整工作流程
"""

import requests
import time

# API基础URL
BASE_URL = "http://127.0.0.1:8000"

def system_demo():
    """系统演示"""
    print("=" * 70)
    print("🤖 自动化内容创作和分发系统 - 完整工作流程演示")
    print("=" * 70)
    
    try:
        # 1. 系统健康检查
        print("\n📋 第一步: 系统健康检查")
        print("-" * 40)
        response = requests.get(f"{BASE_URL}/health")
        if response.status_code == 200 and response.json()['status'] == 'healthy':
            print("✅ 系统运行正常")
        else:
            print("❌ 系统异常")
            return
        
        # 2. 查看支持的数据源
        print("\n📊 第二步: 查看支持的数据源")
        print("-" * 40)
        response = requests.get(f"{BASE_URL}/api/v1/trends/sources")
        if response.status_code == 200:
            sources = response.json()['sources']
            print("支持的数据源:")
            for source in sources:
                print(f"  • {source['key']}: {source['name']}")
        
        # 3. 手动触发热点抓取
        print("\n🔍 第三步: 手动抓取热点数据")
        print("-" * 40)
        response = requests.post(f"{BASE_URL}/api/v1/trends/scrape", params={"sources": ["baidu", "douyin"]})
        if response.status_code == 200:
            result = response.json()
            print("抓取结果:")
            for source, data in result['results'].items():
                if data['status'] == 'success':
                    print(f"  • {source}: 抓取 {data['scraped']} 条，保存 {data['saved']} 条")
                else:
                    print(f"  • {source}: {data['message']}")
        
        # 等待抓取完成
        print("⏳ 等待数据处理完成...")
        time.sleep(3)
        
        # 4. 查看最新热点
        print("\n🔥 第四步: 查看最新热点")
        print("-" * 40)
        response = requests.get(f"{BASE_URL}/api/v1/trends/", params={"limit": 5})
        if response.status_code == 200:
            trends = response.json()
            print(f"获取到 {trends['total']} 个热点:")
            for i, trend in enumerate(trends['data'], 1):
                print(f"  {i}. [{trend['source']}] {trend['title']}")
                if trend['description']:
                    print(f"     {trend['description'][:60]}{'...' if len(trend['description']) > 60 else ''}")
        
        # 5. 选择热点生成内容
        print("\n🧠 第五步: 基于热点生成内容 (使用通义千问)")
        print("-" * 40)
        if trends['total'] > 0:
            selected_trend = trends['data'][0]
            print(f"选择热点: {selected_trend['title']}")
            
            # 生成内容
            generate_data = {
                "trend_id": selected_trend['id'],
                "platforms": ["weibo", "twitter", "wechat"],
                "style": "default",
                "generator": "qwen"
            }
            
            response = requests.post(f"{BASE_URL}/api/v1/content/generate", json=generate_data)
            if response.status_code == 200:
                result = response.json()
                print("生成结果:")
                for platform, data in result['results'].items():
                    if data['status'] == 'success':
                        print(f"  • {platform}: ✅ 成功")
                        print(f"    内容: {data['content']['text'][:80]}{'...' if len(data['content']['text']) > 80 else ''}")
                    else:
                        print(f"  • {platform}: ❌ {data['message']}")
        
        # 6. 查看生成的内容
        print("\n📄 第六步: 查看生成的内容")
        print("-" * 40)
        response = requests.get(f"{BASE_URL}/api/v1/content/", params={"limit": 5})
        if response.status_code == 200:
            contents = response.json()
            print(f"最新生成的 {min(5, contents['total'])} 个内容:")
            for i, content in enumerate(contents['data'][:5], 1):
                print(f"  {i}. [{content['platform']}] {content['content'][:60]}{'...' if len(content['content']) > 60 else ''}")
        
        # 7. 系统总结
        print("\n🎯 第七步: 系统功能总结")
        print("-" * 40)
        print("✓ 多源热点抓取: 支持微博、知乎、百度、抖音等6个平台")
        print("✓ AI内容生成: 集成通义千问和OpenAI双引擎")
        print("✓ 多平台适配: 支持微博、Twitter、微信公众号等内容格式")
        print("✓ 自动化调度: Celery任务队列支持定时和手动触发")
        print("✓ 敏感词过滤: 内置敏感词检测和过滤机制")
        print("✓ 数据存储: SQLite数据库持久化存储")
        print("✓ RESTful API: 完整的API接口支持二次开发")
        
        print("\n" + "=" * 70)
        print("🎉 演示完成! 系统已展示完整工作流程")
        print("🚀 自动化内容创作和分发系统准备就绪，可投入实际使用")
        print("=" * 70)
        
    except Exception as e:
        print(f"❌ 演示过程中出现错误: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    system_demo()